package ar.edu.utn.frba.dds.tp.homes;

import java.io.Serializable;
import java.util.List;

import org.uqbar.commons.model.UserException;

import ar.edu.utn.frba.dds.tp.code.usuarios.Usuario;
import ar.edu.utn.frba.dds.tp.code.usuarios.UsuarioStandard;
import uqbar.arena.persistence.PersistentHome;

@SuppressWarnings("serial")
public class UsuariosHome extends PersistentHome<Usuario> implements Serializable {

	private static UsuariosHome instance = new UsuariosHome();
	
	public static UsuariosHome getInstance(){
		return instance;
	}
	
	public void create(Usuario user){
		this.verificarUserDuplicado(user);
		super.create(user);
	}
	
	private void verificarUserDuplicado(Usuario user) {
		Usuario example = new UsuarioStandard();
		example.setDni(user.getDni());
		List<Usuario> users = this.searchByExample(example);
		if (!users.isEmpty())
			throw new UserException("Ya hay creado un usuario con dni " + user.getDni() + "de nombre " + user.getNombre());
	}

	@Override
	public Class<Usuario> getEntityType() {
		return Usuario.class;
	}

	@Override
	public Usuario createExample() {
		return new UsuarioStandard(); //TODO esto está hardcodeado, preguntar!!
	}

}
